1. Frida
1.1 Frida란? 🤪
주로 모바일 해킹에서 사용되는 프레임워크로, 프로세스를 모니터링하고 디버깅하는데 사용할 수 있는 도구입니다.
안드로이드 및 iOS 애플리케이션에서 실행 중인 코드에 접근하여 디버깅하고 수정할 수 있습니다.
이를 통해 앱의 동작을 조작하거나 보안 취약점을 발견하는 등의 목적으로 사용됩니다. 1.2 Frida의 주 기능
- 함수 후킹 (Hooking)
- 후킹은 말 그대로 “낚아채다” 라는 느낌으로 이해하면 됩니다. 실행 중인 애플리케이션의 특정 함수에 연결하여 반환 값을 변경하거나, 함수를 재 작성 할 수 있습니다.
- 애플리케이션 디버깅이 가능합니다.
- 힙 메모리 내 객체 인스턴스 검색 및 사용이 가능합니다
- 실시간 트래픽 스니핑, 암호 해독이 가능합니다.
- 트레이싱
- 애플리케이션이 하고 있는 일을 추적하고, 기록할 수 있습니다.
- 정규표현식으로 특정 문자열이 들어간 함수들을 추적하여 기록할 수 있습니다.
- 추출
- 애플리케이션에서 명령어 레벨의 코드를 추적할 수 있습니다.
- 실행 중인 애플리케이션이 적재되어 있는 메모리 내의 데이터를 검색하거나 추출할 수 있습니다.
2. Frida 환경설정
Frida는 클라이언트와 서버가 통신하는 형식이고,
device 혹은 가상머신에 Frida-server이 설치되어 있어야 합니다.
2.1 클라이언트 설치
python venv 구축 / 아나콘다
Frida의 경우 상황에 따라 python의 버전을 맞추어서 설정해 주어야 하기 때문에,
python 버전 관리 프로그램을 사용하여야 합니다.
python에서 지원하는 venv
혹은 anaconda
를 사용하게 되면 버전 관리를 쉽게 할 수 있습니다. ➡️ 해당 글에서는 라이브러리 관리를 위해 venv를 사용하도록 하겠습니다.
- python3
python3 같은 경우에는, venv가 기본 모듈로 설치되어 있습니다.
- python2
일단 python2는 지원이 중단된 상태기 때문에 PIP을 설치하는 것도 번거로운 편입니다. 일단 python2의 pip이 설치되어 있다는 가정 하에 진행하겠습니다.
➡️ python2가 정상적으로 깔려있고, pip이 정상적으로 설치되어 있다면 이렇게 나와야 합니다.
virtualenv의 경우 Unicodeerror가 발생할 수 있지만, 경로가 한글 이여서 발생하는게 대부분입니다.
클라이언트 다운로드
2.2 Frida-server 설치 (단말기)
주의사항
Frida-server을 설치할때 주의사항이 존재합니다.
- 단말기 cpu 아키텍쳐와 FridaServer의 지원 아키텍쳐가 일치하는지 확인합니다.
(adb shell → getprop ro.product.cpu.abi)
- frida client와 frida server의 버전이 일치하는지 확인합니다.
설치 및 실행
1. 다운로드
자신의 환경에 맞추어서 설치하여야 합니다.
- version : 16.2.1
- arch : amd64
- 설치
- 실행
3. Frida실행 확인
3.1 Frida-server 실행
3.2 USB 연결 확인
- 모바일 휴대폰 or 애뮬레이터 연결 확인
- 휴대폰의 경우, USB를 이용한 디버깅 설정
adb devices
로 연결된 디바이스 확인
3.3 Frida-client 실행
- 프로세스 목록이 뜬다면 성공
4. ETC
- Frida Lint (프리다 코드 자동완성)